home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / turbovis / tvtool17.zip / ACTLIB.ZIP / TOOLS.ZIP / DENSITY.C < prev    next >
C/C++ Source or Header  |  1993-10-14  |  836b  |  41 lines

  1. /*  Copyright (C) 1993   Marc Stern  (internet: stern@mble.philips.be)  */
  2.  
  3. #include "tools.h"
  4. #include <dos.h>
  5.  
  6.  
  7. /***
  8.  *
  9.  *  Function   :    getdensity
  10.  *
  11.  *  Topics     :    Returns the density of a floppy drive.
  12.  *
  13.  *  Parameters :    in    int drive         0 = A:, 1 = B:
  14.  *
  15.  *  Return code:    density in Kb (360, 720, 1200, 1440)
  16.  *                  0 if invalid drive
  17.  ***/
  18.  
  19. int getdensity( int drive )
  20.  
  21. {
  22.  union REGS regs, outregs;
  23.  
  24.  regs.h.ah = 8;
  25.  regs.h.dl = drive;
  26.  int86( 0x13, ®s, &outregs );     /* sometimes fails first time */
  27.  int86( 0x13, ®s, &outregs );
  28.  switch( outregs.h.bl )
  29.  {
  30.   case 1 :  return 360;
  31.   case 2 :  return 1200;
  32.   case 3 :  return 720;
  33.   case 4 :  return 1440;
  34.   case 6 :  return 2880;
  35.  
  36.   case 5 :  /* ??? */
  37.  
  38.   default:  return 0;
  39.  }
  40. }
  41.